﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Proyectos.aspx.cs" MasterPageFile="MasterPage.Master" Inherits="Web.Pages.Proyectos" %>

<asp:Content ID="mainContent" ContentPlaceHolderID="MainContent" runat="Server" >
    
    <style type="text/css">

    </style>

    <!-- $(document).ready -->  
    <script type="text/javascript" >

        var _idProyecto = Constants.Entities.DefaultId;

        var controles = { General: {}, Proyectos: {}, Guiones: {}, Reclamos: {}, Dialogos: {} };

        $(document).ready(function()
        {            
            procesarParametros();
            configurarControles();
            cargarPagina_Proyectos();
        });
        function procesarParametros()
        {
//            _params = getQueryStringParameters();
//            if ( !isEmpty(_params.idProveedor) )
//                _idProveedor = parseInt(_params.idProveedor);

//            if ( !isEmpty(_params.idProyecto) )
//                _idProyecto = parseInt(_params.idProyecto);
        }
        function configurarControles()
        {
            /* General */
            controles.General.TituloPagina  = "Proyectos";
            controles.General.Botonera      = { Id: "botonera", btnNuevoProyecto: "btnNuevoProyecto", btnNuevoGuion: "btnNuevoGuion", btnReclamos: "btnReclamos", btnImportacion: "btnImportacion" };
            //controles.General.Estados       = { Guion: "<%= selEstadoGuion.ClientID %>", Pago: "<%= selEstadoPago.ClientID %>" };
            /* Reclamos */
            controles.Reclamos.SinAtender   = "<%= lblReclamosSinAtender.ClientID %>";
            controles.Reclamos.InfoReclamos = "<%= hdnInfoReclamos.ClientID %>";
            /* Tablas */
            controles.Proyectos =
            {
                chkVerInactivos: "chkVerProyectosInactivos",
                chkVerImportes: "chkVerDetalleImportes",
                MostrandoImportes: false,
                Tabla:
                {
                    Id: "tblProyectos",
                    ColModel: null,
                    Url: "obtenerProyectos",
                    Title: "Proyectos",
                    SortInfo: ["Id", "desc"],
                    SizeInfo: [_GridInfo.Defaults.Width, _GridInfo.Defaults.Height / 4 ],
                    GridPager: { ShowSearch: false, ShowRefresh: false },
                    GridEvents: { LoadFilters: grillaProyectos_LoadFilters, OnLoadComplete: grillaProyectos_OnLoadComplete, OnDoubleClick: grillaProyectos_OnDoubleClick, OnSelectRow: onSelectRow_Proyecto }
                }
            };
            controles.Guiones =
            {
                chkVerInactivos: "chkVerGuionesInactivos",
                //chkVerImportes: "chkVerDetalleImportes",
                MostrandoImportes: false,
                Tabla:
                {
                    Id: "tblGuiones",
                    ColModel: null,
                    Url: "obtenerGuiones",
                    Title: "Guiones",
                    SortInfo: ["Episodio", "asc"],
                    SizeInfo: [_GridInfo.Defaults.Width,_GridInfo.Defaults.Height / 3],
                    GridPager: { ShowSearch: false, ShowRefresh: false },
                    GridEvents: { LoadFilters: grillaGuiones_LoadFilters, OnLoadComplete: grillaGuiones_OnLoadComplete, OnDoubleClick: null, OnSelectRow: null }
                }
            };
            controles.Dialogos.DetallePagos =
            {
                Id: "dialogDetallePagos",
                Title: "",
                Width: 650,
                Height: 450,
                Initialized: false,
                Initialize: inicializarDialogoDetallePagos,
                Tabla:
                {
                    Id: "tblDetallePagos",
                    ColModel: null,
                    Url: "obtenerDetallePagos",
                    Title: "Detalle de Pagos",
                    SortInfo: ["IdEstadoPago", "asc"],
                    SizeInfo: [0, 0],
                    GridPager: { ShowSearch: false, ShowRefresh: false },
                    GridEvents: { LoadFilters: grillaDetallePagos_LoadFilters, OnLoadComplete: grillaDetallePagos_OnLoadComplete, OnDoubleClick: null, OnSelectRow: null },
                    Initialize: inicializarGrillaDetallePagos
                }
            };

        }
        function cargarPagina_Proyectos()
        {
            Site.Messages.showLoadingMessage();

            Site.Page.setTitle(controles.General.TituloPagina);

            procesarInfoReclamos();

            $("#" + controles.General.Botonera.btnReclamos).click(function () { verReclamos(); });
            $("#" + controles.General.Botonera.btnNuevoProyecto).click(function () { crearProyecto(); });
            $("#" + controles.General.Botonera.btnNuevoGuion).click(function() { crearGuion(_idProyecto); });
            $("#" + controles.General.Botonera.btnImportacion).click(function () { verImportacion(); });

            if ( validarPermisosAdmin(_CurrentUser.Tipo) )
                $("#" + controles.General.Botonera.Id).fadeIn();

            if ( validarTipoUsuario(_CurrentUser.Tipo, _TiposUsuario.Administrador) )
                $("#" + controles.Proyectos.chkVerImportes).parent().fadeIn();

            //Helpers.MultiSelectHelper.configure("#{0}, #{1}".format(controles.General.Estados.Guion, controles.General.Estados.Pago), false);
            //Helpers.MultiSelectHelper.setWidth("#{0}, #{1}".format(controles.General.Estados.Guion, controles.General.Estados.Pago), 200);
            //Helpers.MultiSelectHelper.bindOnChange("#" + controles.General.Estados.Guion, onEstadoGuion_Change);
            //Helpers.MultiSelectHelper.bindOnChange("#" + controles.General.Estados.Pago, onEstadoPago_Change);

            inicializarGrilla(controles.Proyectos);
            inicializarGrilla(controles.Guiones);
            
            $("#{0}".format(controles.Proyectos.chkVerInactivos)).change(function () { refrescarGrilla(controles.Proyectos.Tabla.Id); });
            $("#{0}".format(controles.Guiones.chkVerInactivos)).change(function () { refrescarGrilla(controles.Guiones.Tabla.Id); });

            Site.Messages.hideLoadingMessage();
        }
        function procesarInfoReclamos()
        {
            var infoReclamos = $("#" + controles.Reclamos.InfoReclamos);
            mostrarTooltip("#" + controles.General.Botonera.btnReclamos, infoReclamos.val());
            var reclamosSinAtender = $("#" + controles.Reclamos.SinAtender);
            if (parseInt(reclamosSinAtender.text()) > 0)
                reclamosSinAtender.parent().fadeIn();
        }
        function onEstadoGuion_Change(seleccionado, valor, texto)
        {
            refrescarGrilla(controles.Proyectos.Tabla.Id);
        }
        function onEstadoPago_Change(seleccionado, valor, texto)
        {
            refrescarGrilla(controles.Proyectos.Tabla.Id);
        }
        function inicializarGrilla(infoTabla)
        {
            getGridColModel(infoTabla);

            var tabla = infoTabla.Tabla;

            var gridOpts                            = Helpers.jqGridHelper.createGridObject();
                gridOpts.IdGrid                     = "{0}_Grid".format(tabla.Id);
                gridOpts.IdPager                    = "{0}_GridPager".format(tabla.Id);
                gridOpts.IdColModel                 = "{0}_GridColModel".format(tabla.Id);
                gridOpts.ColModel                   = tabla.ColModel;
                gridOpts.Width                      = tabla.SizeInfo[0];
                gridOpts.Height                     = tabla.SizeInfo[1];
                gridOpts.Title                      = setGridTitle(tabla.Title);
                gridOpts.DefaultSortColumn          = tabla.SortInfo[0];
                gridOpts.DefaultSortOrder           = tabla.SortInfo[1];
                gridOpts.PageSizeList               = [5, 10, 20, 30, 50, 100];
                gridOpts.DefaultPageSize            = _GridInfo.Defaults.PageSize;
            /* jqGrid Properties */
                gridOpts.AutoWidth                  = false;
                gridOpts.ShrinkToFit                = false;
                gridOpts.LoadFiltersOnSearch        = true;
                gridOpts.EditMode                   = Helpers.jqGridHelper.EditMode.Modal;
            /* jqGrid Instance Urls & Params */
                gridOpts.UrlGet                     = tabla.Url;
            /* jqGrid Pager Buttons */
                gridOpts.ShowSearch                 = tabla.GridPager.ShowSearch == true ? true : false;
                gridOpts.ShowRefresh                = tabla.GridPager.ShowRefresh == true ? true : false;
            /* jqGrid Extra Functions */
                gridOpts.LoadFilters                = tabla.GridEvents.LoadFilters;
                gridOpts.OnLoadComplete             = tabla.GridEvents.OnLoadComplete;
                gridOpts.OnSelectRow                = tabla.GridEvents.OnSelectRow;
                gridOpts.OnDoubleClick              = tabla.GridEvents.OnDoubleClick;
                //gridOpts.GroupedRowsHeaderStyles      = { color: "blue", background: "lightcyan" };
                //gridOpts.GroupedColumnsHeaderStyles   = { "font-style": "italic" };

            Helpers.jqGridHelper.setGridOpts(gridOpts);

            var groupInfo = [];
            if (tabla.Id == controles.Proyectos.Tabla.Id)
            {
                    groupInfo.push( { startColumnName: 'Episodios', numberOfColumns: 3, titleText: 'Episodios' } );

                if ( infoTabla.MostrandoImportes )
                    groupInfo.push( { startColumnName: 'CostoTotal', numberOfColumns: 8, titleText: 'Importes' } );

                Helpers.jqGridHelper.groupColumns("{0}_Grid".format(tabla.Id), groupInfo);
            }
            if ( tabla.Id == controles.Guiones.Tabla.Id )
            {
                groupInfo.push( { startColumnName: 'Pagos', numberOfColumns: 3, titleText: 'Pagos' } );
                Helpers.jqGridHelper.groupColumns("{0}_Grid".format(tabla.Id), groupInfo);                
            }
        }
        function getGridColModel(infoTabla)
        {
            var esAdmin         = validarTipoUsuario(_CurrentUser.Tipo, _TiposUsuario.Administrador);
            var oculto          = esAdmin ? false : true;

            var esFreelance     = validarCategoriaUsuario(_CurrentUser.Categoria, _CategoriasUsuario.Freelance);
            var ocultoFr        = esFreelance ? false : true;

            var mostrarImporte  = !infoTabla.MostrandoImportes;

            var colModelProyectos =
            [
                { name: 'Id',                   index: 'Id',                    label: 'Id',                align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                { name: 'Activo',               index: 'Activo',                label: 'Activo',            align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Boolean', stype: 'select', searchoptions: { searchhidden: true, sopt: ['eq'], value: '1:ACTIVO;0:INACTIVO' } },
                { name: 'Activar',              index: 'Activo',                label: ' ',                 align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String', width: 25 },
                { name: 'Facturacion',          index: 'Facturacion',           label: ' ',                 align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String', width: 25 },
                { name: 'Eliminar',             index: 'Eliminar',              label: ' ',                 align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String', width: 25 },
                { name: 'Proyecto',             index: 'Nombre',                label: 'Proyecto',          align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String', width: 270, searchoptions: { sopt: ['eq', 'ne', 'bw', 'cn'] } },
                { name: 'Episodios',            index: 'Episodios',             label: 'Total',             align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'Int32', width: 80 },
                { name: 'EpisodiosEnGrabacion', index: 'EpisodiosEnGrabacion',  label: 'En Grabación',      align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'Int32', width: 80 },
                { name: 'EpisodiosFinalizados', index: 'EpisodiosFinalizados',  label: 'Finalizados',       align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'Int32', width: 80 },
                { name: 'CostoTotal',           index: 'Costo',                 label: 'Total',             align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal', width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoActores',         index: 'Costo',                 label: 'Actores',           align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal',  width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoTraductores',     index: 'Costo',                 label: 'Traductores',       align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoAdaptadores',     index: 'Costo',                 label: 'Adaptadores',       align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoEditores',        index: 'Costo',                 label: 'Editores',          align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoOperadores',      index: 'Costo',                 label: 'Operadores',        align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,   dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoDirectores',      index: 'Costo',                 label: 'Directores',        align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,    dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'CostoMezcladores',     index: 'Costo',                 label: 'Mezcladores',       align: 'center', resizable: false,  hidden: mostrarImporte, search: false, editable: false, sortable: false,    dataType: 'Decimal',    width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'Duracion',             index: 'Duracion',              label: 'Duración',          align: 'center', resizable: false,  hidden: oculto, search: false, editable: false, sortable: false, dataType: 'Int32', width: 100 },
                { name: 'Coeficiente',          index: 'Coeficiente',           label: 'Costo / Minutos',   align: 'center', resizable: false,  hidden: oculto, search: false, editable: false, sortable: false, dataType: 'Decimal', width: 150, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency }
            ];

            var colModelGuiones =
            [
                { name: 'Id',                       index: 'Id',                    label: 'Id',            align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                { name: 'Activo',                   index: 'Activo',                label: 'Activo',        align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Boolean' },
                { name: 'Activar',                  index: 'Activo',                label: ' ',        align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'String', width: 25 },
                { name: 'Facturacion',              index: 'Facturacion',           label: ' ',   align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String', width: 25 },
                { name: 'Eliminar',                 index: 'btnEliminar',           label: ' ',      align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false, dataType: 'String',  width: 25 },
                { name: 'IdEstado',                 index: 'id_guion_estado',       label: 'IdEstado',      align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                //{ name: 'IdEstadoPago', index: 'id_pago_estado',  label: 'IdEstadoPago',  align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                { name: 'IdProyecto',               index: 'id_proyecto',           label: 'IdProyecto',    align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                //{ name: 'AdaptadorId',  index: 'Adaptador.Id',  label: 'Id Adaptador',  align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                //{ name: 'DirectorId',   index: 'Director.Id',   label: 'Id Director',  align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                //{ name: 'MezcladorId',  index: 'Mezclador.Id',  label: 'Id Mezclador',  align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                //{ name: 'TraductorId',  index: 'Traductor.Id',  label: 'Id Traductor',  align: 'center', resizable: false,  hidden: true,  search: false, editable: false, sortable: false, dataType: 'Int32' },
                { name: 'Titulo',                   index: 'Titulo',                label: 'Título',        align: 'center', resizable: false,  hidden: false, search: true,  editable: false, sortable: false,  dataType: 'String',    width: 270, searchoptions: { sopt: ['eq','ne','bw','cn'] } },
                { name: 'Episodio',                 index: 'Episodio',              label: 'Episodio',      align: 'center', resizable: false,  hidden: false, search: true,  editable: false, sortable: false,  dataType: 'Int32',     width: 70, searchoptions: { sopt: ['eq', 'ne', 'gt', 'lt' ] } },
                { name: 'RolUsuario',               index: 'RolProveedor',          label: 'Rol',           align: 'center', resizable: false,  hidden: ocultoFr,  search: false, editable: false, sortable: false, dataType: 'String',    width: 80 },
                { name: 'Duracion',                 index: 'Duracion',              label: 'Duración',      align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Decimal',   width: 70 },
                { name: 'Paginas',                  index: 'Paginas',               label: 'Páginas',       align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 70 },
                { name: 'Loops',                    index: 'Loops',                 label: 'Loops',         align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 70 },
                { name: 'Personajes',               index: 'Personajes',            label: 'Personajes',    align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 70 },
                { name: 'Estado',                   index: 'Estado',                label: 'Estado',        align: 'center', resizable: false,  hidden: false,  search: false, editable: false, sortable: false, dataType: 'String', width: 100, formatter: jqGridFormatter_EstadoGuion },
                { name: 'Pagos',                    index: 'Pagos',                 label: 'Total',         align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 80 },
                { name: 'PagosPendientesDePago',    index: 'PagosPendientesDePago', label: 'Pendientes',    align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 80 },
                { name: 'PagosPagados',             index: 'PagosPagados',          label: 'Pagados',       align: 'center', resizable: false,  hidden: false, search: false, editable: false, sortable: false,  dataType: 'Int32',     width: 80 }
            ];

            if ( infoTabla.Tabla.Id == controles.Proyectos.Tabla.Id )
                infoTabla.Tabla.ColModel = colModelProyectos;

            if ( infoTabla.Tabla.Id == controles.Guiones.Tabla.Id )
                infoTabla.Tabla.ColModel = colModelGuiones;
        }
        function refrescarGrilla(idTabla)
        {
            Helpers.jqGridHelper.reloadGrid("{0}_Grid".format(idTabla));

            if ( idTabla == controles.Proyectos.Tabla.Id )
                Helpers.jqGridHelper.clearGridData("{0}_Grid".format(controles.Guiones.Tabla.Id));
        }
        function enlazarVerImportes(infoTabla)
        {
            Framework.Handlers.onClick
                (
                    $("#" + infoTabla.chkVerImportes),
                    function()
                    {
                        infoTabla.MostrandoImportes = !infoTabla.MostrandoImportes;
                        Helpers.jqGridHelper.destroyGrid("{0}_Grid".format(infoTabla.Tabla.Id));
                        inicializarGrilla(infoTabla);
                    }
                );
        }
        function currencyFormatter(cellValue, options, rowObject)
        {
            return Helpers.NumericHelper.Formatting.formatCurrency(cellValue);
        }
        function onSelectRow_Proyecto(rowId)
        {
            var proyecto = _getGridRowCellValue("{0}_Grid".format(controles.Proyectos.Tabla.Id), rowId, "Proyecto");
                proyecto = $(proyecto).text();
            if (rowId != Constants.Entities.DefaultId)
                _idProyecto = rowId;
            //$("#" + controles.Proyectos.Seleccion).html("{0}".format(proyecto));//.addClass("ui-widget-header");
        }
        function grillaProyectos_LoadFilters()
        {
            var filtro =
                [
                    { match: "", field: "Activo", op: "eq", data: $("#" + controles.Proyectos.chkVerInactivos).is(':checked') ? false : true }
                ];
            return JSON.stringify(filtro);
        }
        function grillaProyectos_OnLoadComplete()
        {
            enlazarVerImportes(controles.Proyectos);

            grillaProyectos_AgregarHandlersBotones();
        }
        function grillaProyectos_AgregarHandlersBotones()
        {
            $(".btnActivarProyecto").css("cursor", "pointer");
            $(".btnActivarProyecto").click
            (
                function()
                {
                    var idProyecto  = $(this).attr("id").replace("btnActivarProyecto_", "");
                    var refrescarGrilla_Proyecto = overloadFunction(refrescarGrilla, controles.Proyectos.Tabla.Id);
                    activarEntidad("Proyecto", idProyecto, refrescarGrilla_Proyecto);
                }
            );
            mostrarTooltip(".btnActivarProyecto", "Habilitar/Deshabilitar Proyecto");

            $(".btnVerFacturacionProyecto").click
            (
                function()
                {
                    var idProyecto  = $(this).attr("id").replace("btnVerFacturacionProyecto_", "");
                    verFacturacion( { "idProyecto" : idProyecto } );
                }
            );
            mostrarTooltip(".btnVerFacturacionProyecto", "Ver Facturación del Proyecto");

            $(".btnEliminarProyecto").click
            (
                function()
                {
                    var idProyecto = $(this).attr("id").replace("btnEliminarProyecto_", "");
                    var refrescarGrilla_Proyecto = overloadFunction(refrescarGrilla, controles.Proyectos.Tabla.Id);
                    eliminarProyecto(idProyecto, refrescarGrilla_Proyecto);
                }
            );
            mostrarTooltip(".btnEliminarProyecto", "Eliminar Proyecto");

            $(".btnEditarProyecto").click
            (
                function()
                {
                    var idProyecto  = $(this).attr("id").replace("btnEditarProyecto_", "");
                    editarProyecto( idProyecto );
                }
            );   
            
            mostrarTooltip(".btnEditarProyecto", "Ver detalle del Proyecto");
        }
        function grillaProyectos_OnDoubleClick(rowId)
        {
            //if (rowId != Constants.Entities.DefaultId)
            //    _idProyecto = rowId;
            refrescarGrilla(controles.Guiones.Tabla.Id);
        }
        function grillaGuiones_LoadFilters()
        {
            var rules = [];

            var condicionActivo =
                {
                    condition: "AND",
                    set:
                    [
                        { match: "OR", field: "Activo", op: "eq", data: $("#" + controles.Guiones.chkVerInactivos).is(':checked') ? false : true }
                    ]
                };
            rules.push(condicionActivo);

            var condicionProyecto =
                {
                    condition: "AND",
                    set:
                    [
                        { match: "AND", field: "id_proyecto", op: "eq", data: _idProyecto }
                    ]
                };
            rules.push(condicionProyecto);

            //var idEstadoGuion = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.General.Estados.Guion);
            //var condicionEstadoGuion =
            //    {
            //        condition: "AND",
            //        set:
            //        [
            //            { match: "AND", field: "id_guion_estado", op: "eq", data: idEstadoGuion }
            //        ]
            //    };
            //rules.push(condicionEstadoGuion);
            
            //var idEstadoPago = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.General.Estados.Pago);
            //var condicionEstadoPago =
            //    {
            //        condition: "AND",
            //        set:
            //        [
            //            { match: "AND", field: "id_pago_estado", op: "eq", data: idEstadoPago }
            //        ]
            //    };
            //rules.push(condicionEstadoPago);

            //if ( !validarPermisosAdmin(_CurrentUser.Tipo) )
            //{
            //    var condicionUsuario = 
            //        {
            //            condition: "AND",
            //            set:
            //            [
            //                { match: "OR", field: "Adaptador.Id",   op: "eq", data: _CurrentUser.Id },
            //                { match: "OR", field: "Director.Id",    op: "eq", data: _CurrentUser.Id },
            //                { match: "OR", field: "Mezclador.Id",   op: "eq", data: _CurrentUser.Id },
            //                { match: "OR", field: "Traductor.Id",   op: "eq", data: _CurrentUser.Id }
            //            ]
            //        };
            //    rules.push(condicionUsuario);
            //}

            return JSON.stringify(rules);
        }
        function grillaGuiones_OnLoadComplete()
        {
            grillaGuiones_AgregarHandlersBotones();
        }
        function grillaGuiones_AgregarHandlersBotones()
        {
            $(".btnActivarGuion").css("cursor", "pointer");
            $(".btnActivarGuion").click
            (
                function()
                {
                    var idGuion  = $(this).attr("id").replace("btnActivarGuion_", "");
                    var refrescarGrilla_Guion = overloadFunction(refrescarGrilla, controles.Guiones.Tabla.Id);
                    activarEntidad("Guion", idGuion, refrescarGrilla_Guion);
                }
            );
            mostrarTooltip(".btnActivarGuion", "Habilitar/Deshabilitar Guión");

            $(".btnVerLiquidacionGuion").click
            (
                function()
                {
                    var idGuion  = $(this).attr("id").replace("btnVerLiquidacionGuion_", "");
                    verLiquidacion( idGuion );
                }
            );
            mostrarTooltip(".btnVerLiquidacionGuion", "Ver Liquidación del Guión");

            $(".btnEliminarGuion").click
            (
                function ()
                {
                    var idGuion = $(this).attr("id").replace("btnEliminarGuion_", "");
                    var refrescarGrilla_Guiones = overloadFunction(refrescarGrilla, controles.Guiones.Tabla);
                    eliminarGuion(idGuion, refrescarGrilla_Guiones);
                }
            );
            mostrarTooltip(".btnEliminarGuion", "Eliminar Guión");

            $(".btnEditarGuion").click
            (
                function ()
                {
                    var idGuion = $(this).attr("id").replace("btnEditarGuion_", "");
                    editarGuion(idGuion);
                }
            );
            mostrarTooltip(".btnEditarGuion", "Ver detalle del Guión");

            $(".btnVerDetallePagos").click
            (
                function ()
                {
                    var idGuion = $(this).attr("id").replace("btnVerDetallePagos_", "");
                    verDetallePagos(idGuion);
                }
            );
            mostrarTooltip(".btnVerDetallePagos", "Ver detalle de Pagos");
        }
    </script>
    <!-- Fin de [Grilla] -->
    
    <!-- Diálogo Detalle Pagos -->
    <script type="text/javascript" >
        function verDetallePagos(idGuion)
        {
            abrirDialogoDetallePagos(idGuion);
        }
        function inicializarDialogoDetallePagos()
        {
            var options =
                {
                    title: controles.Dialogos.DetallePagos.Title.toUpperCase(),
                    width: controles.Dialogos.DetallePagos.Width,
                    height: controles.Dialogos.DetallePagos.Height
                };
            Helpers.DialogHelper.initializeDialog(controles.Dialogos.DetallePagos.Id, options);
            controles.Dialogos.DetallePagos.Initialized = true;
        }
        function abrirDialogoDetallePagos(idGuion)
        {
            Framework.Page.Parameters.idGuion = idGuion;

            if ( !controles.Dialogos.DetallePagos.Initialized )
            {
                controles.Dialogos.DetallePagos.Tabla.Initialize.call();
                controles.Dialogos.DetallePagos.Initialize.call();
            }

            var titulo = "PAKA PAKA DE PELÍCULA";
            var episodio = "26";
            var guion = "{0} - Ep. {1}".format(titulo, episodio);
            Helpers.DialogHelper.setTitle(controles.Dialogos.DetallePagos.Id, guion);

            refrescarGrilla(controles.Dialogos.DetallePagos.Tabla.Id);
    
            Helpers.jqGridHelper.adjustSizeToFitIntoDialog(controles.Dialogos.DetallePagos.Tabla.Id + "_Grid", controles.Dialogos.DetallePagos.Id, controles.Dialogos.DetallePagos.Width, controles.Dialogos.DetallePagos.Height);

            Helpers.DialogHelper.openDialog(controles.Dialogos.DetallePagos.Id);
        }
        function cerrarDialogoDetallePagos()
        {
            Helpers.DialogHelper.closeDialog(controles.Dialogos.DetallePagos.Id);
        }
        function inicializarGrillaDetallePagos()
        {
	        var colModel =
            [
                { name: 'Id',               index: 'Id',                label: 'Id',                align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'Int32' },
                { name: 'IdPago',           index: 'IdPago',            label: 'Id Pago',           align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'Int32' },
                { name: 'IdGuion',          index: 'IdGuion',           label: 'Id Guión',          align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'Int32' },
                { name: 'IdProveedor',      index: 'IdProveedor',       label: 'Id Proveedor',      align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'Int32' },
                { name: 'Proveedor',        index: 'Proveedor',         label: 'Proveedor',         align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'String', width: 200, searchoptions: { sopt: ['eq', 'ne', 'bw','cn' ] } },
                { name: 'TipoProveedor',    index: 'ProveedorTipo',     label: 'Rol',               align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'String', width: 100, formatter: jqGridFormatter_TipoUsuario },
                //{ name: 'Fecha',            index: 'Fecha',           label: 'Fecha',             align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false,    dataType: 'DateTime', width: 80, formatter: fechaFormatter },
                //{ name: 'Loops',            index: 'Loops',           label: 'Loops',             align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Int32', width: 50 },
                //{ name: 'Canciones',        index: 'Canciones',       label: 'Canciones',         align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Int32', width: 70 },
                //{ name: 'ImporteLoops',     index: 'ImporteLoops',    label: 'Loops',             align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Double', width: 80, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                //{ name: 'ImporteCanciones', index: 'ImporteCanciones',label: 'Canciones',         align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Double', width: 80, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'ImporteTotal',     index: 'ImporteTotal',      label: 'Importe',           align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Double', width: 100, formatter: currencyFormatter, formatoptions: jqGridFormatter_Currency },
                { name: 'IdEstadoPago',     index: 'IdEstado',          label: 'Id Estado Pago',    align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false, dataType: 'Int32' },
                { name: 'EstadoPago',       index: 'Estado',            label: 'Estado de Pago',    align: 'center', hidden: false, search: true,   editable: false, resizable: false,  sortable: false, dataType: 'String', width: 180, formatter: jqGridFormatter_EstadoPago }
                //{ name: 'MedioPago',        index: 'MedioPago',       label: 'Medio de Pago',     align: 'center', hidden: false, search: false,  editable: false, resizable: false,  sortable: false,   dataType: 'String', width: 130, formatter: medioPagoFormatter },
                //{ name: 'IdMedioPago',      index: 'IdMedioPago',     label: 'Id Medio Pago',     align: 'center', hidden: true,  search: false,  editable: false, resizable: false,  sortable: false,   dataType: 'Int32' }
            ];

            var gridOpts                            = Helpers.jqGridHelper.createGridObject();
                gridOpts.IdGrid                     = "{0}_Grid".format(controles.Dialogos.DetallePagos.Tabla.Id);
                gridOpts.IdPager                    = "{0}_GridPager".format(controles.Dialogos.DetallePagos.Tabla.Id);
                gridOpts.IdColModel                 = "{0}_GridColModel".format(controles.Dialogos.DetallePagos.Tabla.Id);
                gridOpts.ColModel                   = colModel;
                gridOpts.Width                      = controles.Dialogos.DetallePagos.Tabla.SizeInfo[0];
                gridOpts.Height                     = controles.Dialogos.DetallePagos.Tabla.SizeInfo[1];
                gridOpts.Title                      = setGridTitle(controles.Dialogos.DetallePagos.Tabla.Title);
                gridOpts.DefaultSortColumn          = "IdEstadoPago";
                gridOpts.DefaultSortOrder           = "asc";
                gridOpts.PageSizeList               = [5, 10, 20, 30, 50, 100];
                gridOpts.DefaultPageSize            = 50; //_GridInfo.Defaults.PageSize;
            /* jqGrid Properties */
                gridOpts.AutoWidth                  = false;
                gridOpts.ShrinkToFit                = false;
                gridOpts.LoadFilters                = controles.Dialogos.DetallePagos.Tabla.GridEvents.LoadFilters;
                gridOpts.LoadFiltersOnSearch        = true;
                gridOpts.OnLoadComplete             = controles.Dialogos.DetallePagos.Tabla.GridEvents.OnLoadComplete;
                gridOpts.EditMode                   = Helpers.jqGridHelper.EditMode.Modal;
            /* jqGrid Instance Urls & Params */
                gridOpts.UrlGet                     = controles.Dialogos.DetallePagos.Tabla.Url;
            /* jqGrid Pager Buttons */
                gridOpts.ShowSearch                 = controles.Dialogos.DetallePagos.Tabla.GridPager.ShowSearch;
                gridOpts.ShowRefresh                = controles.Dialogos.DetallePagos.Tabla.GridPager.ShowRefresh;

            Helpers.jqGridHelper.setGridOpts(gridOpts);
        }
        function grillaDetallePagos_LoadFilters()
        {
            var rules = [];

            if ( isEmpty(Framework.Page.Parameters.idGuion) )
                Framework.Page.Parameters.idGuion = Constants.Entities.DefaultId;

            if ( !isEmpty(Framework.Page.Parameters.idGuion) )
            {
                var condicionProveedor =
                    {
                        condition: "AND",
                        set:
                        [
                            { match: "AND", field: "IdGuion", op: "eq", data: Framework.Page.Parameters.idGuion }
                        ]
                    };
                rules.push( condicionProveedor );
            }

            return JSON.stringify(rules);
        }
        function grillaDetallePagos_OnLoadComplete()
        {
        }
        function currencyFormatter(cellValue, options, rowObject)
        {
            return Helpers.NumericHelper.Formatting.formatCurrency(cellValue);
        }
    </script>
    <!-- Fin de [Diálogo Detalle Pagos] -->        

    <!--HTML-->
    <div id="content" style="margin:0 auto; width:90%;" >
        
        <div class="ui-state-error" style="display:none; margin-top:20px; padding:5px"  >
            <img src="Images/16x16/exclamacion.png" alt="Reclamos sin atender" />&nbsp;
            <b><u>¡Atención!</u></b>&nbsp;Hay <label id="lblReclamosSinAtender" runat="server" ></label> reclamo(s) sin atender.
            <input id="hdnInfoReclamos" type="hidden" value="" runat="server" />
        </div>
        
        <br />

        <!-- BOTONES -->
        <div id="botonera" style="float:left; display:none" >
            <span>
                <img src="Images/16x16/email.png" alt="Reclamos" />
                <a href="javascript:void(0);" id="btnReclamos" class="link" title="" >Ver Reclamos</a>
            </span>            
            <span>
                <img src="Images/16x16/proyecto.png" alt="Crear nuevo Proyecto" />
                <a href="javascript:void(0);" id="btnNuevoProyecto" class="link" >Nuevo Proyecto</a>
            </span>
            <span>
                <img src="Images/16x16/guion.png" alt="Crear nuevo Guión" />
                <a href="javascript:void(0);" id="btnNuevoGuion" class="link" >Nuevo Guión</a>
            </span>
            <span>
                <img src="Images/16x16/import_word.png" alt="Crear nuevo Guión" />
                <a href="javascript:void(0);" id="btnImportacion" class="link" >Importar Guión</a>
            </span>
        </div>
        <div style="float:right; display:none" >
            <label>Estado Guión:</label>&nbsp;<select id="selEstadoGuion" multiple="false" runat="server"></select>
            &nbsp;&nbsp;
            <label>Estado Pago:</label>&nbsp;<select id="selEstadoPago" multiple="false" runat="server"> </select>
        </div>
        <!-- Fin de [BOTONES] -->

        <br /><br />
        
        <!-- GRILLAS -->
        <!-- Proyectos -->
        <div class="ui-widget" >
            <input id="chkVerProyectosInactivos" type="checkbox" style="vertical-align:middle; cursor:pointer" />
            <label style="vertical-align:middle;" >Ver inactivos</label>
            <span style="display:none" >
                <input id="chkVerDetalleImportes" type="checkbox" style="vertical-align:middle; cursor:pointer" />
                <label style="vertical-align:middle;" >Ver importes</label>
            </span>
        </div>
        
        <div class="jqGridContainer" >
            <table id="tblProyectos_Grid" ></table>
            <div id="tblProyectos_GridPager" ></div>
            <input type="hidden" id="tblProyectos_GridColModel" />      
        </div>
        <br />
        <!-- Guiones -->
        <div class="ui-widget" >
            <input id="chkVerGuionesInactivos" type="checkbox" style="vertical-align:middle; cursor:pointer" />
            <label style="vertical-align:middle;" >Ver inactivos</label>
        </div>
        <div class="jqGridContainer" >
            <table id="tblGuiones_Grid" ></table>
            <div id="tblGuiones_GridPager" ></div>
            <input type="hidden" id="tblGuiones_GridColModel" />      
        </div>        
        <!-- Fin de [GRILLAS] -->

        <br />
        
        <!-- Diálogo Detalle Pagos -->
        <div id="dialogDetallePagos" style="display:none" >
            <div class="jqGridContainer" >
                <table id="tblDetallePagos_Grid" ></table>
                <div id="tblDetallePagos_GridPager" ></div>
                <input type="hidden" id="tblDetallePagos_GridColModel" />      
            </div>   
        </div>            
        
    </div>

</asp:Content>